if ENV['TRAVIS']
  source 'https://rubygems.org'
else
  source 'https://gems.ruby-china.org'
end

gem 'rails', '~> 5.0.0'
gem 'sprockets' #js css 预处理
gem 'sass-rails' #css预处理器 一种写css 的工具 与 less 
gem 'coffee-rails' # 让 coffeeScript 适配 rails
gem 'uglifier'   #javascrpt 可以支持 ruby
gem 'jquery-rails' #jquery
gem 'jbuilder'   #解析json的工具类
gem 'turbolinks', '~> 5.0.0' #增加应用页面的加载速度 使页面不用全部加载完才显示 导航栏控件
gem 'dropzonejs-rails' #文件上传
gem 'rails_autolink'  #数据库迁移控制插件

gem 'sanitize'    #html  css 文件过滤 经过配置让你想准许的 html css 才能被程序识别编译

gem 'pg'         #postgre 数据库连接工具
gem 'pghero'      #Postgres性能仪表板

gem 'rack-attack'  #增加网络应用的安全过滤请求防止网络攻击 可以设置网络白名单 设置准许访问的ip 限制不准许访问的ip,限制请求次数

gem 'rails-i18n'  #国际化包
gem 'http_accept_language' #找出哪些区域用户preferes读他们指定的浏览器的语言
gem 'twemoji'
gem 'jquery-atwho-rails'
gem 'font-awesome-rails'

# OAuth Provider
gem 'doorkeeper'
gem 'doorkeeper-i18n'

gem 'bulk_insert' #批量插入

# 上传组件
gem 'carrierwave'
# Aliyun / Upyun 可选项
gem 'carrierwave-upyun'
gem 'carrierwave-aliyun'
# Lazy load
gem 'mini_magick', require: false

# 验证码，头像
gem 'rucaptcha'
gem 'letter_avatar'

# 用户系统
gem 'devise'
gem 'devise-encryptable'

# 通知系统
gem 'notifications'
gem 'ruby-push-notifications'

# 分页
gem 'will_paginate'

# 搜索
gem 'elasticsearch-model'
gem 'elasticsearch-rails'

# 三方平台 OAuth 验证登陆
gem 'omniauth'
gem 'omniauth-github'

# Permission
gem 'cancancan'

# Redis
gem 'redis'
gem 'hiredis'
gem 'redis-namespace'
gem 'redis-objects'
gem 'redis-session-store'

# Cache
gem 'second_level_cache'

# Setting
gem 'rails-settings-cached'

# HTML Pipeline
gem 'html-pipeline'
gem 'html-pipeline-rouge_filter'
gem 'redcarpet'
gem 'auto-space'

# 队列
gem 'sidekiq'
# Sidekiq Web
gem 'sinatra', '~> 2.0.0.beta2'

# 分享功能
gem 'social-share-button'

# 表单
gem 'simple_form'

# Mailer Service
gem 'postmark'
gem 'postmark-rails'

# Dalli, kgio is for Dalli
gem 'kgio'
gem 'dalli'

gem 'puma'

# API cors
gem 'rack-cors', require: 'rack/cors'
gem 'rack-utf8_sanitizer'

gem 'exception_notification'
gem 'status-page'

gem 'bundler-audit', require: false

group :development do
  gem 'derailed'
  # Better Errors
  gem 'better_errors'
  gem 'binding_of_caller'
  #gem 'spring'
  #gem 'spring-commands-rspec'
end

group :development, :test do
  #gem 'listen'
  gem 'rubocop', '~> 0.39.0', require: false
  gem 'rspec-rails'
  gem 'factory_girl_rails'
  gem 'database_cleaner'
  gem 'capybara'
  gem 'jasmine-rails', '~> 0.10.2'
  gem 'letter_opener'
  gem 'yard'

  gem 'codecov', require: false
  gem 'pry-byebug'
end
